Micron Document
Fox's Git Mirrors

Node / RFnexus / code.git / commits / bef1bdd

Commit bef1bdd7a8fed071d02a5a28ab74fd928f0d8de6


Parents : ed9521b
Author : Ahmet Inan <inan@aicodix.de>
Date : 2024-03-03T08:44:50+01:00

metrics are kept sorted now

Changes

2 files changed, 4 insertions(+), 18 deletions(-)


Diff

diff --git a/polar_list_decoder.hh b/polar_list_decoder.hh
index 56f41cf..761b645 100644
--- a/polar_list_decoder.hh
+++ b/polar_list_decoder.hh
@@ -318,19 +318,12 @@ public:
default: assert(false);
}
- int perm[TYPE::SIZE];
- for (int k = 0; k < TYPE::SIZE; ++k)
- perm[k] = k;
- std::sort(perm, perm + TYPE::SIZE, [metric](int a, int b) { return metric[a] < metric[b]; });
for (int i = 0, r = 0; rank != nullptr && i < TYPE::SIZE; ++i) {
- if (i > 0 && metric[perm[i-1]] != metric[perm[i]])
+ if (i > 0 && metric[i-1] != metric[i])
++r;
rank[i] = r;
}
- MAP acc;
- for (int k = 0; k < TYPE::SIZE; ++k)
- acc.v[k] = perm[k];
- acc = vshuf(maps[count-1], acc);
+ MAP acc = maps[count-1];
for (int i = count-2; i >= 0; --i) {
message[i] = vshuf(message[i], acc);
acc = vshuf(maps[i], acc);

diff --git a/polar_parity_aided.hh b/polar_parity_aided.hh
index 4068075..6931464 100644
--- a/polar_parity_aided.hh
+++ b/polar_parity_aided.hh
@@ -381,19 +381,12 @@ public:
default: assert(false);
}
- int perm[TYPE::SIZE];
- for (int k = 0; k < TYPE::SIZE; ++k)
- perm[k] = k;
- std::sort(perm, perm + TYPE::SIZE, [metric](int a, int b) { return metric[a] < metric[b]; });
for (int i = 0, r = 0; rank != nullptr && i < TYPE::SIZE; ++i) {
- if (i > 0 && metric[perm[i-1]] != metric[perm[i]])
+ if (i > 0 && metric[i-1] != metric[i])
++r;
rank[i] = r;
}
- MAP acc;
- for (int k = 0; k < TYPE::SIZE; ++k)
- acc.v[k] = perm[k];
- acc = vshuf(maps[index-1], acc);
+ MAP acc = maps[index-1];
for (int i = index-2; i >= 0; --i) {
message[i] = vshuf(message[i], acc);
acc = vshuf(maps[i], acc);

Served by rngit 1.4.1 - Generated in 0.05s